package com.ferris.redbook.util;

public class FileUtil {

    /**
     * 获取文件扩展名
     * @param filename 文件名
     * @return 文件扩展名（包含点，如.jpg）
     */
    public static String getFileExtension(String filename) {
        if (filename == null || filename.lastIndexOf(".") == -1) {
            return "";
        }
        return filename.substring(filename.lastIndexOf("."));
    }

    /**
     * 获取不带扩展名的文件名
     * @param filename 文件名
     * @return 不带扩展名的文件名
     */
    public static String getFilenameWithoutExtension(String filename) {
        if (filename == null) {
            return null;
        }

        int dotIndex = filename.lastIndexOf(".");
        if (dotIndex == -1) {
            return filename;
        }

        return filename.substring(0, dotIndex);
    }

    /**
     * 格式化文件大小
     * @param size 文件大小（字节）
     * @return 格式化后的文件大小字符串
     */
    public static String formatFileSize(long size) {
        if (size <= 0) return "0 B";

        final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};
        int digitGroups = (int) (Math.log10(size) / Math.log10(1024));

        return String.format("%.1f %s", size / Math.pow(1024, digitGroups), units[digitGroups]);
    }
}